type AppendArgument<Fn, A> = Fn extends (...args: infer P) => infer R
  ? (...args: [...P, A]) => R
  : never;

type Case122 = AppendArgument<(a: number, b: string) => number, boolean>;
